import { defineStore } from 'pinia'
import { ref } from 'vue'

const useHistoryStore = defineStore('history', () => {
  interface his {
    [propName: string]: any
  }
  const History = ref<his>({})
  const arr = ref()



  const addHistory = (datas?: string) => {

    // 如果有 datas 数据传入，则给 History 添加数据
    if (datas) History.value[datas] = datas

    arr.value = Object.keys(History.value).reverse()

    return arr.value
  }

  // 如果这段代码放在 addHistory 函数中，很多需要使用到 addHistory 函数的组件都会多余的使用这段代码，从而降低了运行速度
  // 获取 会话存储 给 History
  const fetch = () => {
    if (sessionStorage.getItem('obj')) {
      History.value = JSON.parse(sessionStorage.getItem('obj') || '')
    }
  }

  // 将 History 的数据存储到 会话存储 中
  const storage = () => {
    sessionStorage.setItem('obj', JSON.stringify(History.value))
  }



  return {
    History,
    addHistory,
    fetch,
    storage,

  }
})

export default useHistoryStore